Ext.require(['*']);



Ext.define('modelUsuarios', {
	extend: 'Ext.data.Model',
	proxy : {
		type : 'ajax',
		//actionMethods : 'POST',
		//url : '/roles', //application/controllers/Habitacion.php
		
		api: {
                read: '/usuarios/view',
                create: '/usuarios/create',
                save: '/usuarios/update',
                destroy: '/usuarios/destroy'
		},
	
		reader: {
				
                type: 'json',
                successProperty: 'success',
                root: 'usuarios',
                messageProperty: 'message'
            },
		writer: {
			type: 'json',
			writeAllFields: false,
			root: 'usuario'
		},
		
	},
	
	fields: [
		{type: 'int' , name: 'id'},
		{type: 'string', name: 'username'},
		{type: 'string', name: 'nombre'},
		{type: 'string', name: 'apellido'},
		{type: 'string', name: 'correo'},
		{type: 'string', name: 'password'},
		{type: 'string', name: 'estado'}
	]
});





Ext.define('UsuarioLiveSearchGridPanel', {
    extend: 'Ext.ux.LiveSearchGridPanel',
    
    initComponent: function() {
        
        //Ext.Msg.alert('Estoy en el initComponet del live!!!');
        var me = this;
        me.tbar = ['Buscar',{
                 xtype: 'textfield',
                 name: 'searchField',
                 hideLabel: true,
                 width: 200,
                 listeners: {
                     change: {
                         fn: me.onTextFieldChange,
                         scope: this,
                         buffer: 100
                     }
                 }
            }, {
                xtype: 'button',
                text: '<',
                tooltip: 'Anterior',
                handler: me.onPreviousClick,
                scope: me
            },{
                xtype: 'button',
                text: '>',
                tooltip: 'Siguiente',
                handler: me.onNextClick,
                scope: me
            }, '-', {
                xtype: 'checkbox',
                hideLabel: true,
                margin: '0 0 0 4px',
                handler: me.regExpToggle,
                scope: me                
            }, 'Expresión Regular', {
                xtype: 'checkbox',
                hideLabel: true,
                margin: '0 0 0 4px',
                handler: me.caseSensitiveToggle,
                scope: me
            }, 'Detectar Mayúsculas'];
        
        me.callParent(arguments);
    }
});





Ext.define(/*'App.view.TabFirst'*/ 'App.view.AdmUsers', {
    extend: 'Ext.panel.Panel',
    alias: 'widget.tabfirst',
    title: 'Administación de Usuarios',
	layout:'anchor', 
    /*layoutConfig : {
		align: 'stretch'
	},*/ 
	
	
    initComponent: function () {
        
        //para que funcionen los toolTips
        Ext.QuickTips.init();
        
		// Add the additional 'advanced' VTypes
		Ext.apply(Ext.form.field.VTypes, {
		   

			password: function(val, field) {
				if (field.initialPassField) {
					var pwd = field.up('form').down('#' + field.initialPassField);
					return (val == pwd.getValue());
				}
				return true;
			},

			passwordText: 'Las contraseñas no coinciden!'
		});
        
         
 
        this.store = Ext.create('Ext.data.Store', {
			model : 'modelUsuarios',
			autoLoad : true
		});
 
		this.autorizacionesJson = null;
		
		//hacemos la llamada ajax para obtener la autorizacion de funcionalidades de usuarios
		Ext.Ajax.request(
		{
			url:'/autorizacion/admUsuarios',
			//form:"[STICK FORM ID HERE]",
			method:'GET',
			scope : this,
			//params: { idTipoItem: idTipoItemEnviar},
			//async: false,
			
			async    : false,
			callback : function(opts, success, response) {
				
				console.log('respuesta en callBack!!!!!!');	
				obj = Ext.decode(response.responseText);
				console.log('probando un key nulllllll');
				console.log(obj.autorizacionesJson.hollaaaa);
				this.autorizacionesJson = obj.autorizacionesJson;
				
			}
			
		});
		
		
		console.log('voy a entrar en a crear el toolbar');
		
		this.TblGridUsuarioEdit_usuarios = Ext.create('Ext.toolbar.Toolbar',{
			defaults: { hidden: true },
			items : 
			[	
				{
					xtype : 'button',
					id : 'btn_grid_agregar_usuario',
					itemId : 'btn_grid_agregar_usuario',
					text : 'Agregar Usuario',
					//iconCls : 'icon_button_add',
					icon:'static/images/add.png',
					
					disabled : false,
					tooltip : 'Agregar un Nuevo Usuario',
					scope : this,
					handler : this.AgregarRecordSelect,
					hidden: this.autorizacionesJson.CREACION_USUARIO
				},
				{
					xtype : 'tbseparator'
				},
				{
					xtype : 'button',
					id : 'btn_grid_editar_usuario',
					itemId : 'btn_grid_editar_usuario',
					text : 'Editar Registro',
					icon:'static/images/edit.png',
					disabled : true,
					tooltip : 'Editar el registro seleccionado',
					scope : this,
					handler : this.EditRecordSelect,
					hidden: this.autorizacionesJson.EDICION_USUARIO
				},
				{
					xtype : 'tbseparator'
				},
				{
					xtype : 'button',
					id : 'btn_grid_cambiar_pass',
					itemId : 'btn_grid_cambiar_pass',
					text : 'Cambiar Contraseña',
					icon:'static/images/password.png',
					disabled : true,
					tooltip : 'Cambiar Contraseña de Usuario',
					scope : this,
					handler : this.CambiarPassRecordSelect,
					hidden: this.autorizacionesJson.CAMBIAR_CONTRASENHA_USUARIO
				},
				{
					xtype : 'tbseparator'
				},
				{
					xtype : 'button',
					id : 'btn_grid_eliminar_usuario',
					itemId : 'btn_grid_eliminar_usuario',
					text : 'Eliminar Registro',
					icon:'static/images/delete.png',
					disabled : true,
					tooltip : 'Eliminar el registro seleccionado',
					scope : this,
					handler : this.DeleteRecordSelect,
					hidden: this.autorizacionesJson.ELIMINACION_USUARIO
					
				},
				{
					xtype : 'tbseparator'
				},
				{
					xtype : 'button',
					id : 'btn_grid_cambiarEstado_usuario',
					itemId : 'btn_grid_cambiarEstado_usuario',
					text : 'Cambiar Estado',
					icon:'static/images/estado.png',
					disabled : true,
					tooltip : 'Cambiar Estado de Usuario',
					scope : this,
					handler : this.CambiarEstadoRecordSelect,
					hidden: this.autorizacionesJson.CAMBIAR_ESTADO_USUARIO
				}
			]
		});
 
		
	
 
        this.grid = Ext.create(/*'Ext.grid.Panel'*/'UsuarioLiveSearchGridPanel',{
			title : 'Lista de Usuarios',
			frame : true,
			store : this.store,
			stripeRows : true,
			columnLines: true,
			loadMask : true,
			//width : 550,
			//height : 400,
			dockedItems : [this.TblGridUsuarioEdit_usuarios,
				Ext.create('Ext.ux.StatusBar', {
				defaultText: this.defaultStatusText,
				name: 'searchStatusBar'
				})
			],
			//flex:4,
			//x:250,
			//y:100,
			anchor: '100% 100%', 
			//plugins: [new Ext.ux.grid.GridHeaderFilters()],
			columns : 
			[
				Ext.create('Ext.grid.RowNumberer'),
				{
					text : "id",
					dataIndex : 'id',
					hidden : true
				},
				{
					text : "Username",
					dataIndex : "username",
					sortable : false,
					resizable : false,
					width : 100
					
				},
				{ 
					text : "Nombre",
					dataIndex : "nombre",
					sortable : false,
					resizable : false,
					width : 200
				},
				{
					text : "Apellido",
					dataIndex : "apellido",
					sortable : false,
					resizable : false,
					width : 200
					
				},
				{
					text : "Correo",
					dataIndex : "correo",
					sortable : false,
					resizable : false,
					width : 200
					
				},
				{
					text : "Estado",
					dataIndex : "estado",
					sortable : false,
					resizable : false,
					width : 150
					
				}
				
			],
			listeners : {
				scope : this, //El ámbito de aplicación (la referencia) en el que se ejecuta el controlador.
				'selectionchange': function(view, records) {
					//Activar los botones del DataGrid
					//La propiedad #btn_grid_editar_usuario corresponde al itemId asignado al item en el componente Toolbar del DataGrid
						console.log('usernameeeee')
						console.log(this.grid.getSelectionModel().getSelection()[0].data.username)
						
						if (this.grid.getSelectionModel().getSelection()[0] != null){
						
							if(this.grid.getSelectionModel().getSelection()[0].data.username != 'admin'){
								this.grid.down('#btn_grid_editar_usuario').setDisabled(!records.length);
								this.grid.down('#btn_grid_eliminar_usuario').setDisabled(!records.length);
								this.grid.down('#btn_grid_cambiar_pass').setDisabled(!records.length);
								this.grid.down('#btn_grid_cambiarEstado_usuario').setDisabled(!records.length);	
							}else{
								this.grid.down('#btn_grid_editar_usuario').setDisabled(true);
								this.grid.down('#btn_grid_eliminar_usuario').setDisabled(true);
								this.grid.down('#btn_grid_cambiar_pass').setDisabled(true);
								this.grid.down('#btn_grid_cambiarEstado_usuario').setDisabled(true);	
							}
							
						}
						
						 						
					}
			},
			bbar: Ext.create('Ext.PagingToolbar', {
				store : this.store,
				displayInfo : true,
				displayMsg : 'Mostrando registros {0} - {1} de {2}',
				emptyMsg : "Sin registros para mostrar"
			})
				
			
		});
		
        this.items = [this.grid];
        this.callParent(arguments);
    },
        
    
    AgregarRecordSelect : function(){
	
		//Creamos el FormPanel que contendra los datos a agregar
		this.FormAddModal = Ext.create('Ext.form.Panel',{
		frame :true,
		title : 'Datos del Usuario',
		bodyStyle :'padding:5px 5px 0',
		width : 550,
		height : 250,
		defaultType: 'textfield',
		items: 
		[
			{
				fieldLabel : 'Username',
				id : 'usernameAdd',
				name : 'usernameAdd',
				anchor : '80%',
				hidden : false,
				allowBlank : false,
				maxLength:'15'
			},
			{
				fieldLabel : 'Nombres',
				id : 'nombreAdd_usuario',
				name : 'nombreAdd_usuario',
				anchor : '80%',
				allowBlank : false,
				maxLength:'30'
			},
			{
				fieldLabel : 'Apellidos',
				id : 'apellidoAdd_usuario',
				name : 'apellidoAdd_usuario',
				anchor : '80%',
				allowBlank : false,
				maxLength:'30'
			},
			{
				fieldLabel : 'Correo',
				id : 'correoAdd_usuario',
				name : 'correoAdd_usuario',
				anchor : '80%',
				allowBlank : true,
				vtype: 'email',
				maxLength:'30'
			},
			{
				fieldLabel : 'Contraseña',
				id : 'passwordAdd',
				name : 'passwordAdd',
				anchor : '80%',
				hidden : false,
				inputType:'password',
				allowBlank : false,
				maxLength:'15'
			},
			{
				fieldLabel : 'Confirmar Contraseña',
				//id : 'passwordAdd',
				name : 'passwordAddComfir',
				anchor : '80%',
				hidden : false,
				inputType:'password',
				vtype: 'password',
				initialPassField: 'passwordAdd',
				allowBlank : false,
				maxLength:'15'
			}
		
		],
		buttons: [{
			text : 'Guardar',
			id : 'id_btn_add_guardar_usuario',
			iconCls : 'icon_button_save',
			scope : this,
			handler : this.HandlerGuardarDatosUsuario
			},{
			text : 'Cancelar',
			id : 'id_btn_add_cancelar_usuario',
			icon:'static/images/cancel.png',
			scope : this,
			handler : function(){
				this.WindowFormAddModal.close();
			}
		}]
	});
		//Una vez creado el FormPanel lo reseteamos
		this.FormAddModal.getForm().reset();
		//Creamos la ventana que contendra el FormaPanel creado anteriormente
		this.WindowFormAddModal = Ext.create('Ext.window.Window',{
			title : 'Agregar Nuevo Usuario',
			bodyStyle : 'padding:10px 10px 10px 10px',
			region : 'center',
			width : 580,
			height : 300,
			modal : true,
			//resizable : false,
			draggable : false,
			closable : true,
			closeAction : 'hide',
			items : [this.FormAddModal]
		});
		//Mostramos la ventana con el formulario de edicion y los datos del registro seleccionado
		this.WindowFormAddModal.show();
		
	},
	
	HandlerGuardarDatosUsuario:function(){
		//Ext.Msg.alert("Info",this.FormAddModal.getForm().isValid());
		if (this.FormAddModal.getForm().isValid()){
			//Ext.Msg.alert("Info","Pasé la validación");
			
			var rec = new modelUsuarios({
				//idRol: Ext.getCmp('idRolAdd').getValue(),
				nombre: Ext.getCmp('nombreAdd_usuario').getValue(),
				apellido: Ext.getCmp('apellidoAdd_usuario').getValue(),
				correo: Ext.getCmp('correoAdd_usuario').getValue(),
				username: Ext.getCmp('usernameAdd').getValue(),
				password: Ext.getCmp('passwordAdd').getValue()
			});
			
			
			this.FormAddModal.getForm().submit({
				method : 'POST',
				//type: "json",
				url : '/usuarios/create', 
				clientValidation : true,
				scope : this,
				params : {
					//ids_permisos : Ext.JSON.encode(Ext.getCmp('id_cmbx_permisos').getValue()),
					usuario : Ext.JSON.encode(rec)
				},
				success: function(form, action){
					obj = Ext.decode(action.response.responseText)
					
					if(obj.rsp == 'ok'){
						this.WindowFormAddModal.close();
						this.store.load();	
					}
					
					
					Ext.Msg.alert('Estatus',  obj.msg, function(btn, text){
					   
					   if (btn == 'ok'){
									
						}
						
					});					
					
					
					
					
				},
				failure: function(form, action){
					Ext.Msg.alert("Error",action.result);
					Ext.MessageBox.show({
						title : 'Informacion del sistema',
						msg : action.result.msg,
						buttons : Ext.MessageBox.OK,
						icon : Ext.MessageBox.ERROR,
						width : 350
					});
				} //End failure
			});
		}
	},
    
    
    DeleteRecordSelect : function(){
		Ext.MessageBox.show({
			title : "Información del sistema",
			msg : "¿Realmente desea eliminar el registro seleccionado?",
			buttons : Ext.MessageBox.YESNO,
			icon : Ext.MessageBox.INFO,
			scope : this,
			fn : this.EliminarRegistroSeleccionado,
			width : 400
		});
	},
    
    EliminarRegistroSeleccionado : function(btn){
		if (btn == 'yes') { //btn=='yes'
			//WindowAdmUsuarios.el.mask('Eliminando datos....Espere por favor...');
			
			//Ext.Msg.alert("this.grid.getSelectionModel().getSelection()[0].data.id;", this.grid.getSelectionModel().getSelection()[0].data.id);
			
			
			
			registroSeleccionado = this.grid.getSelectionModel().getSelection()[0].data.id;
			Ext.Ajax.request({
				url : '/usuarios/destroy', //application/controllers/Habitacion.php
				method : 'POST',
				scope : this,
				params : {
					param_id : registroSeleccionado
				},
				success: function(response, opts) { //success
					var obj = Ext.JSON.decode(response.responseText);
					if(obj.success==true){
						this.store.load();
						//this.WindowAdmUsuarios.el.unmask();
					}
					else if(obj.success==false){
						//this.WindowAdmUsuarios.el.unmask();
							Ext.MessageBox.show({
								title : "Informacion del sistema",
								msg : obj.msg,
								buttons : Ext.MessageBox.OK,
								icon : Ext.MessageBox.ERROR,
								width : 400
							});
					}
					else{
						//this.WindowAdmUsuarios.el.unmask();
						Ext.MessageBox.show({
							title : "Informacion del sistema",
							msg : "Mensaje de error alternativo a la eliminacion del registro seleccionado",
							buttons : Ext.MessageBox.OK,
							icon : Ext.MessageBox.ERROR,
							width : 400
						});
					}
				}, //success
				failure: function(response, opts) { //failure
					//this.WindowAdmUsuarios.el.unmask();
					var obj = Ext.JSON.decode(response.responseText);
						Ext.MessageBox.show({
							title : "Informacion del sitema",
							msg : "Error de conexion al servidor de la base de datos",
							buttons : Ext.MessageBox.OK,
							icon : Ext.MessageBox.ERROR,
							width : 400
						});
				} //failure
			});
		}else{
	
		}
	},
    
    
		EditRecordSelect : function(){
			//Creamos el FormPanel que contendra los datos a editar
			this.FormEditModal = Ext.create('Ext.form.Panel',{
				frame :true,
				title : 'Datos del Usuario',
				bodyStyle :'padding:5px 5px 0',
				width : 550,
				height : 250,
				defaultType: 'textfield',
				items: [
					{
						//fieldLabel : 'Id Habitacion',
						id : 'idUsuarioEdit_usuario',
						name : 'idUsuarioEdit_usuario',
						anchor : '50%',
						hidden : true,
						allowBlank : true
					},
					{
						//fieldLabel : 'Id Habitacion',
						fieldLabel : 'Username',
						id : 'idUsernameEdit_usuario',
						name : 'idUsernameEdit_usuario',
						anchor : '50%',
						disabled: true
					},
					{
						fieldLabel : 'Nombre',
						id : 'nombreUsuarioEdit_usuario',
						name : 'nombreUsuarioEdit_usuario',
						anchor : '80%',
						allowBlank : false,
						maxLength:'30'
					},
					{
						fieldLabel : 'Apellido',
						id : 'apellidoUsuarioEdit_usuario',
						name : 'apellidoUsuarioEdit_usuario',
						anchor : '80%',
						allowBlank : false,
						maxLength:'30'
					},
					{
						fieldLabel : 'Correo',
						id : 'correoUsuarioEdit_usuario',
						name : 'correoUsuarioEdit_usuario',
						anchor : '80%',
						vtype: 'email',
						maxLength:'30'
						//allowBlank : false
					}
				],
				buttons: [
					{
						text : 'Guardar',
						id : 'id_btn_editar_guardar_usuario',
						iconCls : 'icon_button_save',
						scope : this,
						handler : this.HandlerActualizarDatosUsuario
					},
					{
					text : 'Cancelar',
					id : 'id_btn_editar_cancelar_usuario',
					icon:'static/images/cancel.png',
					scope : this,
					handler : function(){
						this.WindowFormEditModal.close();
						}
					}
				]
			});
		//Una vez creado el FormPanel lo reseteamos
		this.FormEditModal.getForm().reset();
		//Obtenemos el registro seleccionado del Grid
		registroSeleccionado = this.grid.getSelectionModel().getSelection()[0].data.id;
	
		//setamos los valores del grit a ser editados
		Ext.getCmp('idUsuarioEdit_usuario').setValue(this.grid.getSelectionModel().getSelection()[0].data.id);
		Ext.getCmp('idUsernameEdit_usuario').setValue(this.grid.getSelectionModel().getSelection()[0].data.username);
		Ext.getCmp('nombreUsuarioEdit_usuario').setValue(this.grid.getSelectionModel().getSelection()[0].data.nombre),
		Ext.getCmp('apellidoUsuarioEdit_usuario').setValue(this.grid.getSelectionModel().getSelection()[0].data.apellido),
		Ext.getCmp('correoUsuarioEdit_usuario').setValue(this.grid.getSelectionModel().getSelection()[0].data.correo),
	
		//Creamos la ventana que contendra el FormaPanel creado anteriormente
		this.WindowFormEditModal = Ext.create('Ext.window.Window',{
			title : 'Editar registro seleccionado',
			bodyStyle : 'padding:10px 10px 10px 10px',
			region : 'center',
			width : 580,
			height : 300,
			modal : true,
			//resizable : false,
			draggable : false,
			closable : true,
			closeAction : 'hide',
			items : [this.FormEditModal]
		});
		//Mostramos la ventana con el formulario de edicion y los datos del registro seleccionado
		this.WindowFormEditModal.show();
	},
    
    
    HandlerActualizarDatosUsuario:function(){
		if (this.FormEditModal.getForm().isValid()){
			//Ext.Msg.alert("Info","Actualizar los datos del formulario");
			
			var rec = new modelUsuarios({
				id: Ext.getCmp('idUsuarioEdit_usuario').getValue(),
				nombre: Ext.getCmp('nombreUsuarioEdit_usuario').getValue(),
				apellido: Ext.getCmp('apellidoUsuarioEdit_usuario').getValue(),
				correo: Ext.getCmp('correoUsuarioEdit_usuario').getValue(),
			});
			
			//rec.create();
			
			//this.StoreRoles.insert(0, rec);
			//this.StoreRoles.load();
			
			this.FormEditModal.getForm().submit({
				method : 'POST',
				//type: "json",
				url : '/usuarios/update', //application/controllers/Habitacion.php
				clientValidation : true,
				scope : this,
				params : {
					usuario : Ext.JSON.encode(rec)
					
				},
				success: function(form, action){
					this.WindowFormEditModal.close();
					this.store.load();
				},
				failure: function(form, action){
					Ext.MessageBox.show({
						title : 'Informacion del sistema',
						msg : action.result.msg,
						buttons : Ext.MessageBox.OK,
						icon : Ext.MessageBox.ERROR,
						width : 350
					});
				} //End failure
			});
		}
	},
	
	CambiarPassRecordSelect : function(){
			//Creamos el FormPanel que contendra los datos a editar
			this.FormCambiarPassModal = Ext.create('Ext.form.Panel',{
				frame :true,
				title : 'Datos de Contraseña',
				bodyStyle :'padding:5px 5px 0',
				width : 550,
				height : 250,
				defaultType: 'textfield',
				items: [
					{
						id : 'idUsuarioEdit_usuarioCambPass',
						name : 'idUsuarioEdit_usuarioCambPass',
						anchor : '50%',
						hidden : true,
						allowBlank : false
					},
					{
						fieldLabel : 'Username',
						id : 'idUserNameCambPass',
						name : 'idUserNameCambPass',
						anchor : '60%',
						//allowBlank : false
						disabled:true
					},
					{
						fieldLabel : 'Nombre',
						id : 'idnombreCambPass',
						name : 'idnombreCambPass',
						anchor : '60%',
						//allowBlank : false
						disabled:true
					},
					{
						fieldLabel : 'Apellido',
						id : 'idApellidoCambPass',
						name : 'idApellidoCambPass',
						anchor : '60%',
						//allowBlank : false
						disabled:true
					},
					{
						fieldLabel : 'Contraseña Actual',
						id : 'idPassActCambPass',
						name : 'idPassActCambPass',
						inputType:'password',
						anchor : '60%',
						allowBlank : false,
						maxLength:'15'
					},
					{
						fieldLabel : 'Nueva Contraseña',
						id : 'idPassNewCambPass',
						name : 'idPassNewCambPass',
						inputType:'password',
						anchor : '60%',
						maxLength:'15',
						allowBlank : false
					},
					{
						fieldLabel : 'Confirmar Nueva Contraseña',
						id : 'idPassNewConfCambPass',
						name : 'idPassNewConfCambPass',
						inputType:'password',
						anchor : '60%',
						vtype: 'password',
						initialPassField: 'idPassNewCambPass',
						allowBlank : false,
						maxLength:'15'
					}
				],
				buttons: [
					{
						text : 'Guardar',
						id : 'id_btn_cambPass_guardar',
						iconCls : 'icon_button_save',
						scope : this,
						handler : this.HandlerCambiarPassUsuario
					},
					{
					text : 'Cancelar',
					id : 'id_btn_cambPass_cancelar',
					icon:'static/images/cancel.png',
					scope : this,
					handler : function(){
						this.WindowFormCambiarPassModal.close();
						}
					}
				]
			});
		//Una vez creado el FormPanel lo reseteamos
		this.FormCambiarPassModal.getForm().reset();
		//Obtenemos el registro seleccionado del Grid
		registroSeleccionado = this.grid.getSelectionModel().getSelection()[0].data.id;
	
		//setamos los valores del grit a ser editados
		Ext.getCmp('idUsuarioEdit_usuarioCambPass').setValue(this.grid.getSelectionModel().getSelection()[0].data.id);
		Ext.getCmp('idnombreCambPass').setValue(this.grid.getSelectionModel().getSelection()[0].data.nombre);
		Ext.getCmp('idApellidoCambPass').setValue(this.grid.getSelectionModel().getSelection()[0].data.apellido);
		Ext.getCmp('idUserNameCambPass').setValue(this.grid.getSelectionModel().getSelection()[0].data.username);
		
		
		//Ext.getCmp('idPassActCambPass').setValue(this.grid.getSelectionModel().getSelection()[0].data.password),
	
	
		//Creamos la ventana que contendra el FormaPanel creado anteriormente
		this.WindowFormCambiarPassModal = Ext.create('Ext.window.Window',{
			title : 'Cambiar Contraseña',
			bodyStyle : 'padding:10px 10px 10px 10px',
			region : 'center',
			width : 580,
			height : 300,
			modal : true,
			//resizable : false,
			draggable : false,
			closable : true,
			closeAction : 'hide',
			items : [this.FormCambiarPassModal]
		});
		//Mostramos la ventana con el formulario de edicion y los datos del registro seleccionado
		this.WindowFormCambiarPassModal.show();
	},
	
	HandlerCambiarPassUsuario:function(){
		if (this.FormCambiarPassModal.getForm().isValid()){
			//Ext.Msg.alert("Info","Actualizar los datos del formulario");
			
			var rec = new modelUsuarios({
				id: Ext.getCmp('idUsuarioEdit_usuarioCambPass').getValue(),
				passwordActual: Ext.getCmp('idPassActCambPass').getValue(),
				passwordModif:Ext.getCmp('idPassNewCambPass').getValue(),
				
			});
			
			//rec.create();
			
			//this.StoreRoles.insert(0, rec);
			//this.StoreRoles.load();
			
			this.FormCambiarPassModal.getForm().submit({
				method : 'POST',
				//type: "json",
				url : '/usuarios/cambiarPass', //application/controllers/Habitacion.php
				clientValidation : true,
				scope : this,
				params : {
					usuario : Ext.JSON.encode(rec)
					
				},
				success: function(form, action){
					obj = Ext.decode(action.response.responseText)
					
					if(obj.rsp == 'ok'){
						this.WindowFormCambiarPassModal.close();
						this.store.load();	
					}
					
					Ext.Msg.alert('Estatus',  obj.msg, function(btn, text){
					   
					   if (btn == 'ok'){
									
						}
						
					});		
					
				},
				failure: function(form, action){
					Ext.MessageBox.show({
						title : 'Informacion del sistema',
						msg : action.result.msg,
						buttons : Ext.MessageBox.OK,
						icon : Ext.MessageBox.ERROR,
						width : 350
					});
				} //End failure
			});
		}
	},
	
	CambiarEstadoRecordSelect : function(){
		Ext.MessageBox.show({
			title : "Información del sistema",
			msg : "¿Realmente desea cambiar el estado del Usuario?",
			buttons : Ext.MessageBox.YESNO,
			icon : Ext.MessageBox.INFO,
			scope : this,
			fn : this.CambiarEstadoRegistroSeleccionado,
			width : 400
		});
	},
	
	
	CambiarEstadoRegistroSeleccionado : function(btn){
		if (btn == 'yes') { //btn=='yes'
			//WindowAdmUsuarios.el.mask('Eliminando datos....Espere por favor...');
			
			//Ext.Msg.alert("this.grid.getSelectionModel().getSelection()[0].data.id;", this.grid.getSelectionModel().getSelection()[0].data.id);
			
			
			
			registroSeleccionado = this.grid.getSelectionModel().getSelection()[0].data.id;
			Ext.Ajax.request({
				url : '/usuarios/cambiarEstado', //application/controllers/Habitacion.php
				method : 'POST',
				scope : this,
				params : {
					param_id : registroSeleccionado
				},
				success: function(response, opts) { //success
					var obj = Ext.JSON.decode(response.responseText);
					if(obj.success==true){
						this.store.load();
						//this.WindowAdmUsuarios.el.unmask();
					}
					else if(obj.success==false){
						//this.WindowAdmUsuarios.el.unmask();
							Ext.MessageBox.show({
								title : "Informacion del sistema",
								msg : obj.msg,
								buttons : Ext.MessageBox.OK,
								icon : Ext.MessageBox.ERROR,
								width : 400
							});
					}
					else{
						//this.WindowAdmUsuarios.el.unmask();
						Ext.MessageBox.show({
							title : "Informacion del sistema",
							msg : "Mensaje de error alternativo a la eliminacion del registro seleccionado",
							buttons : Ext.MessageBox.OK,
							icon : Ext.MessageBox.ERROR,
							width : 400
						});
					}
				}, //success
				failure: function(response, opts) { //failure
					//this.WindowAdmUsuarios.el.unmask();
					var obj = Ext.JSON.decode(response.responseText);
						Ext.MessageBox.show({
							title : "Informacion del sitema",
							msg : "Error de conexion al servidor de la base de datos",
							buttons : Ext.MessageBox.OK,
							icon : Ext.MessageBox.ERROR,
							width : 400
						});
					} //failure
				});
			}else{
	
			}
		},
	
	
	
    
}); 
